package br.ufal.ic.fracao;

import br.ufal.ic.fracao.dao.GenericDAOImpl;
import br.ufal.ic.fracao.dao.problem.ProblemaDAOImpl;
import br.ufal.ic.fracao.dao.problem.SuportePedagogicoDAOImpl;
import br.ufal.ic.fracao.dao.problem.UnidadeDAOImpl;
import br.ufal.ic.fracao.dao.user.AprendizDAOImpl;
import br.ufal.ic.fracao.dao.user.CadastroDAOImpl;
import br.ufal.ic.fracao.facade.DataBaseFacade;
import br.ufal.ic.fracao.model.problem.Problema;
import br.ufal.ic.fracao.model.problem.SuportePedagogico;
import br.ufal.ic.fracao.model.problem.Unidade;
import br.ufal.ic.fracao.model.user.Aprendiz;
import br.ufal.ic.fracao.model.user.Cadastro;
import java.util.HashSet;
import java.util.Set;

/*
 * Test.java
 *
 * Created on March 21, 2007, 3:01 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

/**
 * 
 * @author badu
 */
public class Test {

	/** Creates a new instance of Test */
	//public Test() {
	//}

	public static void main(String[] args) {
		DataBaseFacade f = new DataBaseFacade();

		// -------------------Aprendiz------------------

		
		  GenericDAOImpl<Aprendiz, Long> dao1 = new AprendizDAOImpl();
		  
		  Aprendiz a1 = new Aprendiz(); a1.setNome("Guilherme");
		  a1.setEmail("guilhermemm@gmail.com");
		  
		  Aprendiz a2 = new Aprendiz(); a2.setNome("Badu");
		  a2.setEmail("chipbadu@gmail.com");
		  
		  //----------------------Unidade------------------
		  
		  GenericDAOImpl<Unidade, Long> dao2 = new UnidadeDAOImpl();
		  
		  Unidade u1 = new Unidade(); u1.setNome("Unidade 1");
		  
		  Unidade u2 = new Unidade(); u2.setNome("Unidade 2");
		  
		  //----------------Suporte Pedagogico--------------
		  
		  GenericDAOImpl<SuportePedagogico, Long> dao3 = new
		  SuportePedagogicoDAOImpl();
		  
		  SuportePedagogico s1 = new SuportePedagogico(); s1.setNome("Suporte 1");
		  
		  SuportePedagogico s2 = new SuportePedagogico(); s2.setNome("Suporte 2");
		  
		  //----------------Problema-------------------------
		  
		  GenericDAOImpl<Problema, Long> dao4 = new ProblemaDAOImpl();
		  
		  Problema p1 = new Problema(); p1.setEnunciado("2*5+3");
		  //p1.setDica("Dica 1");
		  
		  Problema p2 = new Problema(); p2.setEnunciado("2*6+5");
		  //p2.setDica("Dica 2");
		  
		  //-------------------Cadastro------------------------
		  
		  GenericDAOImpl<Cadastro, Long> dao5 = new CadastroDAOImpl();
		  
		  Cadastro c1 = new Cadastro(); c1.setBairro("Cadastro 1");
		  
		  Cadastro c2 = new Cadastro(); c2.setBairro("Cadastro 2");
		  
		   // relacionando problemas e suporte pedagogico
		  //p1.setSuportePedagogico(s1); 
		  s1.setProblema(p1);
		  
		  //p2.setSuportePedagogico(s2); 
		  s2.setProblema(p2);
		   // Conjunto de problemas 
		  Set<Problema> set1 = new HashSet<Problema>(); 
		  set1.add(p1);
		  set1.add(p2);
		   // relacionando problemas e unidades pedagogicas 
		  //p1.setUnidade(u1);
		  //p2.setUnidade(u1); 
		  u1.setProblemas(set1);
		   // relacionando aprendizes e cadastros 
		  /*a1.setCadastro(c1);
		  c1.setUsuario(a1);*/
		  
		  /*a2.setCadastro(c2); 
		  c2.setUsuario(a2);*/
		   // relacionando problemas e aprendizes
		  
		  a1.addProblemaSolucionado(p1); 
		  a1.addProblemaNaoSolucionado(p2);
		   // salva unidade pegagogica -> salva problemas e suporte pedagogico
		  /*dao2.save(u1); 
		  dao2.save(u2);*/
		  
		 
		   // salva aprendiz -> salva cadastro 
		  dao1.save(a1); 
		  dao1.save(a2);/*
		 

		GenericDAOImpl<Aprendiz, Long> dao1 = new AprendizDAOImpl();

		Aprendiz a1 = dao1.get(new Long(1));

		for (Problema p : a1.getProblemasSolucionados()) {
			System.out.println(p.getEnunciado());
		}*/

	}

}
